1. Technical Field
The present disclosure relates to a compression coding apparatus that effectively codes speech information into a compressed form and a method therefor, and more particularly, to a speech coding apparatus of a code excited linear prediction (CELP) type and a method therefor.
2. Description of the Related Art
FIG. 7 is a block diagram illustrating a CELP-type speech coding apparatus. In the CELP-type speech coding apparatus 100, an excitation signal E which is a driving vector is generated such that an adaptive codebook vector p representing a periodic component output from an adaptive codebook 101 is multiplied by an adaptive codebook gain gp using an amplifier 102, and a resultant vector is added, by an adder 105, with a vector obtained by multiplying a fixed codebook vector c representing a non-periodic component output from a fixed codebook 103 by a fixed codebook gain gc using an amplifier 104. The generated excitation signal E drives a synthesis filter 106, which operates based on a linear prediction coefficient obtained by performing linear prediction analysis on an input speech signal and further quantization, thereby generating a synthesized speech signal in the form of a speech signal vector.
In the CELP-type speech coding apparatus 100, an error calculator 107 calculates an error of the generated synthesized speech signal with respect to the input speech signal, and a parameter quantization unit 108 determines an adaptive codebook vector, an adaptive codebook gain, a fixed codebook vector, and a fixed codebook gain so as to minimize the error described above (analysis by synthesis). To minimize perceptual distortion, perceptual weighting is performed by a perceptual weighting filter 109, and thereafter minimization of the error of the generated synthesized speech signal with respect to the input speech signal is performed.
In general, the minimization of the error by the parameter quantization unit 108 is performed in a sequential manner such that first an adaptive codebook vector is determined by an adaptive codebook search unit 110, and then a fixed codebook vector is determined by a fixed codebook search unit 111. Furthermore, an adaptive codebook gain and a fixed codebook gain are determined by a gain codebook search unit 112. In general, the process of determining the adaptive codebook vector is referred to as an adaptive codebook search, and the process of determining the fixed codebook vector is referred to as a fixed codebook search. In this case, the adaptive codebook vector is first determined without taking into account the combination with the fixed codebook vector, and thus the obtained combination of the adaptive codebook vector and the fixed codebook vector is not necessarily an optimum solution.
To perform the fixed codebook search, two methods are known: a non-orthogonal search; and an orthogonal search. In the non-orthogonal search, the fixed codebook search is performed while the adaptive codebook vector and the adaptive codebook gain are fixed. In the orthogonal search, the fixed codebook search is performed while only the adaptive codebook vector is fixed. Therefore, in the orthogonal search, an optimum combination of an adaptive codebook vector and a fixed codebook vector is determined without restricting the adaptive codebook gain and the fixed codebook gain. This generally allows it to obtain, in the fixed codebook search, a result closer to the optimum solution than can be obtained by the non-orthogonal search. However, a greater amount of calculation is required (see, for example, Japanese Unexamined Patent Application Publication No. 11-126096).
Note that in the orthogonal search of the fixed codebook, it is premised that the adaptive codebook gain and the fixed codebook gain are ideal (optimum values) for the selected adaptive codebook vector and fixed codebook vector. That is, the selection of the adaptive codebook vector and the fixed codebook vector is not necessarily performed such that the adaptive codebook vector and fixed codebook vector are selected so as to be optimum for the finally quantized adaptive codebook gain and fixed codebook gain. Therefore, in the actual CELP coding process, the orthogonal search does not necessarily give a better result than the non-orthogonal search.
In view of the above, in a certain known technique, the orthogonal search is used only when the ideal value (the optimum value) of the adaptive codebook gain is greater than a threshold value, and otherwise the non-orthogonal search is used (Japanese Unexamined Patent Application Publication No. 10-312198).